Rust Codifies New Rules for AI Coding: AI May Review, but Not Author; Excessive Use Trips a 'Circuit Breaker'
Rust Codifies New Rules for AI Coding: AI May Review, but Not Author; Excessive Use Trips a 'Circuit Breaker'
Five Rust teams have formally adopted a new policy on AI-assisted coding, establishing rules for contributor use of large language models (LLMs) in rust-lang/rust.
The policy, authored by Jynn Nelson, was announced on the Inside Rust blog on August 5, 2026, for rust-lang/rust — the project's principal monolithic codebase.
Its core principle can be summarized in a single sentence:
LLMs may answer, analyze, distill, refine, verify, suggest, and review; creation is prohibited. [IMAGE:0]
Approved by five teams — compiler, standard library, type system, rustdoc, and bootstrap — the policy replaces the 'Wild West' era of unwritten rules that Nelson described with codified, public guidelines.
The policy presently governs only the rust-lang/rust repository and binds only its approving teams. A clear boundary is drawn: LLMs are welcome as instruments of thought, not substitutes for it.
What, precisely, does Rust permit AI to do?
Nelson outlined the rules on the Inside Rust blog:
No one is obligated to read LLM-generated content. Unlabeled LLM output is barred from public documentation, PR descriptions, and GitHub comments; reviewers may decline PRs involving LLM generation. LLM use is not a condition of contributing to rust-lang/rust. Policies must first be written for humans, then adapted for machine consumption. LLM reviews neither substitute for human review nor for the author's own verification. Private, undisclosed LLM use is permitted provided output is not published where Rust members must read or review it. Machine translation, 'minor edits,' bug discovery, and review of others' work require disclosure of LLM involvement. Contributors may communicate in their native language; prior English translation is not required.
In essence: think, review, and translate — but do not create. Operationally, the rules fall into three tiers.
Tier one is unrestricted: private use in which only the contributor sees LLM output — querying the codebase, summarizing a thread, or privately soliciting a review of one's own code.
Tier two is permitted with disclosure: machine translation, minor edits such as typo fixes, LLM-assisted bug discovery, and LLM review bots. Review bots must operate under separate, clearly marked GitHub accounts, allowing uninterested users to block them directly.
Tier three is prohibited: LLM-generated comments, documentation, and compiler diagnostics; processes that require an LLM to function; and merge or rejection decisions based solely on an LLM's review.
The policy's binding force lies in its enforcement.
Deliberate concealment or misrepresentation of LLM use constitutes a Code of Conduct violation, ranked alongside harassment. A first offense may warrant a warning; repeat offenses may result in a ban.
The policy candidly concedes that much of it cannot be technically enforced — by design. "Our goal is not to catch every violation... Our goal is to eliminate any space for evasion: to make people choose between compliance and deliberate violation," it states.
Rust is not alone in drawing boundaries around LLMs; its contrast with Zig is instructive. [IMAGE:1]
Zig's prohibition is more absolute: LLM-generated code and text are banned, as are rewriting or paraphrasing such content; AI use for editing, translation, brainstorming, or bug hunting is disallowed. Zig's regime is inexpensive to enforce yet burdensome to obey. Rust takes the opposite course: reviewers bear greater judgment, while contributors retain the LLM tools they already employ. [IMAGE:2]
Excessive AI-Generated Code Trips a 'Circuit Breaker'
Rather than prohibiting LLM-written code outright, Rust confines such contributions to a narrowly scoped experiment.
LLM-created changes must be prearranged with a designated reviewer, avoid critical areas such as compiler soundness, be fully tested, and undergo thorough human review; disclosure of LLM involvement is mandatory in all cases.
New contributors are most constrained. First-time contributors may not submit LLM-created pull requests without first securing a reviewer willing to own the review. Where the affected code lacks a test suite, the contributor must supply one; otherwise the PR is closed. No exceptions are granted.
The experiment is equipped with its own 'circuit breaker.'
Should LLM-created PRs exceed half of all merges in any six-week window, merging of such PRs is suspended until their share falls below 50%, with a minimum 10-day cooldown.
The six-week window is no accident: it aligns with Rust's six-week release cycle.
Such PRs are tagged ai-assisted and mirrored to a private Zulip channel. The channel exists to gather data, not to add review friction: whether LLM-assisted contributors genuinely learn, remain engaged, and ultimately sustain valuable output.
Nelson cited three pressures that drove the teams from informal practice to codified rules.
First, an immaculate pull request no longer attests to the author's effort or comprehension of the code.
Reviewers once inferred from a well-structured, tested, and documented PR that its author had invested heavily and understood the submission. That signal is now eroding, and Rust's review culture had depended on it substantially.
Second, falling code-generation costs have tightened already constrained review capacity; rust-lang/rust currently holds 1,281 open PRs. The project's scarce resource has never been code but reviewers' judgment and time. An LLM enables one person to produce code rapidly, without a commensurate increase in those able to judge its merits.
Third, contributors began relaying reviewer comments through an LLM and posting its responses back to GitHub. Nelson called the practice 'a waste of everyone's time': reviewers seeking an LLM's view can consult it directly. Review requires the contributor's own judgment and understanding.
It also erodes a foundational assumption of review: that reviewers are addressing a real person — one who genuinely engages with the problem and the feedback.
Rust Itself Remains Divided on AI
The policy's backdrop is notable: within Rust, attitudes toward AI are markedly divided.
The motivation section concedes that no consensus exists on when and how AI tools should be used — 'and quite possibly never will.'
Positions range widely: daily reliance, outright rejection, and lingering indecision. The policy was therefore designed to be amendable; major revisions require re-approval by every signatory team, which may also rescind it entirely.
The leadership council is separately weighing a project-level LLM committee, whose rules would supersede the current policy.
Its actual reach is considerably narrower than the headline implies.
It excludes other rust-lang repositories and certain language team functions, including issue tracking and stability reports.
The style guide falls outside the policy's scope; non-approving teams remain unbound and may set their own rules.
Members of the rust-lang organization are excepted from the critical-code restriction when creating LLM-generated code — an exemption the policy strongly discourages.
PRs submitted prior to the policy's effective date are likewise exempt.
Notably, a contributor's violation of the LLM policy does not license harassment over LLM use; harassment itself contravenes the Code of Conduct.
Rust to Decide on Continuation After Six Weeks
With the ai-assisted label live, Rust will begin collecting data on LLM-created PRs via the private Zulip channel.
The first six-week cycle will test whether bounded LLM code contributions further burden the merge queue.
Concurrently, the leadership council continues to deliberate a dedicated LLM committee; if formed, its rules would outrank the current policy and may extend from rust-lang/rust to the project as a whole.
Chat channels, forums, and repositories without explicit AI policies could then be absorbed into a single framework.
Nelson evidently endorses the direction, viewing the policy as a first step rather than a final answer to how Rust should confront LLMs.